package com.qianli.cashmama.trade.client.vo;


import com.qianli.cashmama.trade.common.enums.BillPaidStatusEnum;
import com.qianli.cashmama.trade.common.enums.TradeBorrowDurationEnum;

import java.io.Serializable;
import java.util.Date;

/**
 * Created with IntelliJ IDEA.
 * User: sm
 * Date: 2017/7/25
 * Time: 上午9:53
 * 账单结果集列表
 */
public class BillVO implements Serializable {
    /**
     * 账单编号
     */
    private String billNo;
    /**
     * 交易编号
     */
    private String tradeNo;

    /**
     *
     */
    private Integer totalPeriod;

    /**
     * 当前期数
     */
    private Integer currentPeriod = 0;
    /**
     * 还款状态
     */
    private BillPaidStatusEnum paidStatus;
    /**
     * 借款金额
     */
    private String borrowCapital = "0";
    /**
     * 到账金额
     */
    private String receivedCapital = "0";
    /**
     * 借款利息
     */
    private String interest = "0";
    /**
     * 服务费
     */
    private String serviceFee = "0";
    /**
     * 应还金额
     */
    private String repaymentCapital = "0";
    /**
     * 已还金额
     */
    private String paidCapital = "0";
    /**
     * 优惠金额
     */
    private String discountCapital = "0";
    /**
     * 逾期费
     */
    private String overdueServiceFee = "0";
    /**
     * 逾期服务费
     */
    private String overdueFee = "0";
    /**
     * 累计应还总金额
     */
    private String repaymentTotalCapital;
    /**
     * 剩余应还总金额 (等于 累计应还总金额-已还金额)
     */
    private String remainRepaymentCapital;
    /**
     * 应还时间
     */
    private Date repaymentDate;
    /**
     * 还清时间
     */
    private Date payOffDate;
    /**
     * 逾期天数
     */
    private int overdueDays = 0;

    /**
     * 借款利率
     */
    private String borrowRatio = "0";

    /**
     * 产品code
     */
    private String productCode;

    /**
     * 类目code
     */
    private String productCategory;

    /**
     * 到账日期
     */
    private Date receivedDate;

    /**
     * 周期长度
     */
    private Integer periodLength;

    /**
     * 分期单位 天、周、月、年
     */
    private TradeBorrowDurationEnum borrowDurationEnum;

    /**
     * 还款渠道
     */
    private String paidChannel;

    /**
     * 展期次数
     */
    private Integer extensionCount;

    public String getBillNo() {
        return billNo;
    }

    public BillVO setBillNo(String billNo) {
        this.billNo = billNo;
        return this;
    }

    public String getTradeNo() {
        return tradeNo;
    }

    public BillVO setTradeNo(String tradeNo) {
        this.tradeNo = tradeNo;
        return this;
    }

    public Integer getTotalPeriod() {
        return totalPeriod;
    }

    public BillVO setTotalPeriod(Integer totalPeriod) {
        this.totalPeriod = totalPeriod;
        return this;
    }

    public Integer getCurrentPeriod() {
        return currentPeriod;
    }

    public BillVO setCurrentPeriod(Integer currentPeriod) {
        this.currentPeriod = currentPeriod;
        return this;
    }

    public BillPaidStatusEnum getPaidStatus() {
        return paidStatus;
    }

    public BillVO setPaidStatus(BillPaidStatusEnum paidStatus) {
        this.paidStatus = paidStatus;
        return this;
    }

    public String getBorrowCapital() {
        return borrowCapital;
    }

    public BillVO setBorrowCapital(String borrowCapital) {
        this.borrowCapital = borrowCapital;
        return this;
    }

    public String getReceivedCapital() {
        return receivedCapital;
    }

    public BillVO setReceivedCapital(String receivedCapital) {
        this.receivedCapital = receivedCapital;
        return this;
    }

    public String getInterest() {
        return interest;
    }

    public BillVO setInterest(String interest) {
        this.interest = interest;
        return this;
    }

    public String getServiceFee() {
        return serviceFee;
    }

    public BillVO setServiceFee(String serviceFee) {
        this.serviceFee = serviceFee;
        return this;
    }

    public String getRepaymentCapital() {
        return repaymentCapital;
    }

    public BillVO setRepaymentCapital(String repaymentCapital) {
        this.repaymentCapital = repaymentCapital;
        return this;
    }

    public String getPaidCapital() {
        return paidCapital;
    }

    public BillVO setPaidCapital(String paidCapital) {
        this.paidCapital = paidCapital;
        return this;
    }

    public String getDiscountCapital() {
        return discountCapital;
    }

    public BillVO setDiscountCapital(String discountCapital) {
        this.discountCapital = discountCapital;
        return this;
    }

    public String getOverdueServiceFee() {
        return overdueServiceFee;
    }

    public BillVO setOverdueServiceFee(String overdueServiceFee) {
        this.overdueServiceFee = overdueServiceFee;
        return this;
    }

    public String getOverdueFee() {
        return overdueFee;
    }

    public BillVO setOverdueFee(String overdueFee) {
        this.overdueFee = overdueFee;
        return this;
    }

    public String getRepaymentTotalCapital() {
        return repaymentTotalCapital;
    }

    public BillVO setRepaymentTotalCapital(String repaymentTotalCapital) {
        this.repaymentTotalCapital = repaymentTotalCapital;
        return this;
    }

    public String getRemainRepaymentCapital() {
        return remainRepaymentCapital;
    }

    public BillVO setRemainRepaymentCapital(String remainRepaymentCapital) {
        this.remainRepaymentCapital = remainRepaymentCapital;
        return this;
    }

    public Date getRepaymentDate() {
        return repaymentDate;
    }

    public BillVO setRepaymentDate(Date repaymentDate) {
        this.repaymentDate = repaymentDate;
        return this;
    }

    public Date getPayOffDate() {
        return payOffDate;
    }

    public BillVO setPayOffDate(Date payOffDate) {
        this.payOffDate = payOffDate;
        return this;
    }

    public int getOverdueDays() {
        return overdueDays;
    }

    public BillVO setOverdueDays(int overdueDays) {
        this.overdueDays = overdueDays;
        return this;
    }

    public String getBorrowRatio() {
        return borrowRatio;
    }

    public BillVO setBorrowRatio(String borrowRatio) {
        this.borrowRatio = borrowRatio;
        return this;
    }

    public String getProductCode() {
        return productCode;
    }

    public BillVO setProductCode(String productCode) {
        this.productCode = productCode;
        return this;
    }

    public String getProductCategory() {
        return productCategory;
    }

    public BillVO setProductCategory(String productCategory) {
        this.productCategory = productCategory;
        return this;
    }

    public Date getReceivedDate() {
        return receivedDate;
    }

    public BillVO setReceivedDate(Date receivedDate) {
        this.receivedDate = receivedDate;
        return this;
    }

    public Integer getPeriodLength() {
        return periodLength;
    }

    public BillVO setPeriodLength(Integer periodLength) {
        this.periodLength = periodLength;
        return this;
    }

    public TradeBorrowDurationEnum getBorrowDurationEnum() {
        return borrowDurationEnum;
    }

    public BillVO setBorrowDurationEnum(TradeBorrowDurationEnum borrowDurationEnum) {
        this.borrowDurationEnum = borrowDurationEnum;
        return this;
    }

    public String getPaidChannel() {
        return paidChannel;
    }

    public BillVO setPaidChannel(String paidChannel) {
        this.paidChannel = paidChannel;
        return this;
    }

    public Integer getExtensionCount() {
        return extensionCount;
    }

    public BillVO setExtensionCount(Integer extensionCount) {
        this.extensionCount = extensionCount;
        return this;
    }
}
